1. Field of the Invention
The present invention relates to a method for permanently loading calibration data into a flash memory for electronic control of an engine. More specifically, the present invention allows a user the ability to immediately assess engine performance when new calibration data has been loaded into an engine electronic control unit. Additionally, the method provides for a permanent means of storing the new calibration data from RAM into flash memory by monitoring vehicle level inputs signals.
2. Description of the Related Art
Modern day fuel injected fuel engines are controlled by an electronic control unit (ECU). The ECU is a computer that executes a program which controls various engine outputs in response to vehicle level input signals. The ECU contains a microcontroller which further comprises of a memory and a plurality of input or output pins. The memory is placed either external or internal to the microcontroller. The memory is connected to the microcontroller through address or data buses where data is communicated between the microcontroller and memory. The number of input or output pins located on the ECU depends on the vehicle line or engine type involved. The input and output pins are connected to various key components related to the operation of the engine and comprises of either analog or digital signals.
The main software control program or executable code is stored in a fixed memory device and typically consists of one of the following types; a UV erasable programmable read only memory (EPROM), a read only memory (ROM), an electrically erasable programmable read only memory (EEPROM), and more recently the use of a flash memory. The fixed memory devices are non-volatile meaning that the data stored is not lost when power is removed from the ECU. Depending on the fixed memory type used, a fixed memory device can be reprogrammed to accept a new software control program. A temporary memory location such as a random access memory (RAM) is used to store dynamic variables and for performing calculations. RAM is volatile, meaning it loses its data when power is removed from the engine ECU.
The prior trend in ECU's designs was to use EEPROM's for storing engine calibration data. The calibration data comprises of data used to control emissions, engine performance, drivability and fuel consumption. The EEPROM was preferred because it could be erased and reprogrammed byte wide many times. If a single calibration needs to be changed, it can be erased and reprogrammed without erasing and reprogramming the entire memory.
Typically, when erasing and reprogramming the EEPROM, the main software control program executes a subroutine located within the program that would erase the contents in the EEPROM in a background loop while the engine was running. While in the reprogramming mode, access to the EEPROM was prohibited, as a result, a user reprogramming the EEPROM would have to wait for the reprogramming procedure to terminate. Once the reprogramming procedure was complete, the main software control program was allowed to access the EEPROM again and only then could the user assess the impact of the new calibration data with respect to engine functionality. The problem with erasing and reprogramming the EEPROM was that the process slow and it increased development time. Additionally, the costs of using EEPROM's were becoming prohibitive when compared to the cheaper costs associated with using flash memory. With flash memory, memory storage capability is increased dramatically. It is no longer unheard of for a programmer to find a microcontroller having a flash memory which allows for data storage in excess of eight megabytes. Likewise, RAM packaged with microcontrollers which are equipped with flash memory will allow for data storage of up to several kilobytes of data if needed.
Although the use of flash memory in engine ECU's provides commercial benefits in addition to increased data storage capacity, there are some drawbacks. The problem with flash memory, particularly for flash memory packaged external to the microcontroller, is that a single value located in the calibration data cannot be erased and reprogrammed one byte at a time. If flash memory is used, the entire memory sector has to be first erased then reprogrammed. As a result, a user would have to wait for the erase/reprogram operation to be completed. This delay prevents the user from immediately assessing engine performance when new changes are made to calibration data.
The objective of the present invention is to capitalize on the benefits associated with using flash memory on engine ECU's and to also provide the user with the capability of immediately assessing engine performance when a new calibration data has been downloaded into an ECU.